package com.bbs.toutiao.mapper.admin;

import com.bbs.toutiao.vo.client.AddCommentVo;
import com.bbs.toutiao.vo.client.CommentClinetVo;
import com.bbs.toutiao.vo.comment.ComResponseVo;
import com.bbs.toutiao.vo.comment.CommentPageRequestVo;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

/**
 * 描述: 文章操作Mapper
 * 作者： zhangBin
 * 时间： 2023/9/25 16:55
 * 版本： 1.0
 */

@Mapper
public interface CommentMapper {

    //动态分页查询评论
    List<ComResponseVo> findByCommentPage(CommentPageRequestVo requestVo);

    //动态统计评论总数
    long getCommentCount(CommentPageRequestVo requestVo);

    //统计每个文章的评论
    @Select("select  count(*) from t_comments where article_id = #{articleId} ")
    int sumCountByArticleId(Integer articleId);


    //动态删除评论
    int deleteByIdComment (List<Map<String,Integer>> commentList);

    //客户端分页查询评论，以及是否点赞了某个评论
    List<CommentClinetVo> findByCommentPageClient(CommentPageRequestVo requestVo);


    //点赞，取消点赞
    int updateCount(Map<String,Integer> comment);

    //往用户点赞表中添加点赞数据
    @Insert("insert into t_likes(user_id,comment_id) values(#{userId},#{commentId})")
    int insertUserLike(Map<String,Integer> comment);

    //去除点赞信息
    @Delete("delete from t_likes where user_id = #{userId} and comment_id = #{commentId}")
    int deleteUserLike(Map<String,Integer> comment);

    //发布评论
    int insertComment(AddCommentVo commentVo);
}
